Accelerating Fuzzing through Prefix-Guided Execution

نویسندگان

چکیده

Coverage-guided fuzzing is one of the most effective approaches for discovering software defects and vulnerabilities. It executes all mutated tests from seed inputs to expose coverage-increasing tests. However, executing incurs significant performance penalties---most are discarded because they do not increase code coverage. Thus, determining if a test increases coverage without actually it beneficial, but paradoxical challenge. In this paper, we introduce notion prefix-guided execution (PGE) tackle PGE leverages two key observations: (1) Only tiny fraction coverage, thus requiring full execution; (2) whether may be accurately inferred its partial execution. monitors applies early termination when prefix indicates that unlikely To demonstrate potential PGE, implement prototype on top AFL++, which call AFL++-PGE. We evaluate AFL++-PGE MAGMA, ground-truth benchmark set consists 21 programs nine popular real-world projects. Our results show that, after 48 hours fuzzing, finds more bugs, discovers bugs faster, achieves higher Prefix-guided general can benefit AFL-based family fuzzers.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Driller: Augmenting Fuzzing Through Selective Symbolic Execution

Memory corruption vulnerabilities are an everpresent risk in software, which attackers can exploit to obtain unauthorized access to confidential information. As products with access to sensitive data are becoming more prevalent, the number of potentially exploitable systems is also increasing, resulting in a greater need for automated software vetting tools. DARPA recently funded a competition,...

متن کامل

Improving Fuzzing with Symbolic Execution

Fuzzing is a great technique to, for example, discover and reproduce software system vulnerabilities. However, there exist problems with finding test inputs for complex checks (e.g., string equality checks). A recent approach proposes to combine fuzzing techniques with symbolic execution to effectively tackle this problem [1]. The student should examine and discuss the approach given in the pap...

متن کامل

INSTRIM: Lightweight Instrumentation for Coverage-guided Fuzzing

Empowered by instrumentation, coverage-guided fuzzing monitors the program execution path taken by an input, and prioritizes inputs based on their contribution to code coverage. Although instrumenting every basic block ensures full visibility, it slows down the fuzzer and thus the speed of vulnerability discovery. This paper shows that thanks to common program structures (e.g., directed acyclic...

متن کامل

Direct SMARTS: Accelerating Microarchitectural Simulation Through Direct Execution

Due to growing complexity and costs of hardware systems, computer architects traditionally rely on software simulation to evaluate new designs. Although software simulation excels in convenience and flexibility, it suffers from prohibitively long turnaround time. Researchers are constantly searching for methods to accelerate software simulations. SMARTS is a framework that uses rigorous statist...

متن کامل

Accelerating NWChem Coupled Cluster Through Dataflow-Based Execution

Numerical techniques used for describing many-body systems, such as the Coupled Cluster methods (CC) of the quantum chemistry package NWCHEM, are of extreme interest to the computational chemistry community in fields such as catalytic reactions, solar energy, and bio-mass conversion. In spite of their importance, many of these computationally intensive algorithms have traditionally been thought...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: Proceedings of the ACM on programming languages

سال: 2023

ISSN: ['2475-1421']

DOI: https://doi.org/10.1145/3586027